/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
 * callbacks.h
 * Copyright (C) Kevin DeKorte 2009 <kdekorte@gmail.com>
 * 
 * MediaWall is free software: you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * MediaWall is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along
 * with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <clutter/clutter.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <clutter-gtk/clutter-gtk.h>
#include <clutter-gst/clutter-gst.h>

#include "declarations.h"
#include "fosfor_button.h"
#include "fosfor_tracker.h"
#include "fosfor_volume.h"

#include <gst/interfaces/streamvolume.h>


void destroy (GtkWidget *widget, gpointer data);
gboolean resize_window(gpointer data);
gboolean update_gui(gpointer data);
void on_media_eos(ClutterMedia *media, gpointer data);
void notify_caps_callback(GObject *obj, GParamSpec * pspec, gpointer data);
void stream_info_notify_callback (GObject * obj, GParamSpec * pspec, gpointer data);
void on_menu_file_open_activate(GtkMenuItem *menuitem, gpointer data);
void on_forward_clicked(FosforButton *button, gpointer data);
void on_rewind_clicked(FosforButton *button, gpointer data);
void on_stop_clicked(FosforButton *button, gpointer data);
void on_play_pause_clicked(FosforButton *button, gpointer data);
void on_button_release_event(ClutterActor *actor, ClutterEvent *event, gpointer data);
void on_media_progress_value_changed(GtkRange *range, gpointer data);
void on_volume_percentage_changed(FosforVolume *volume, gdouble value, gpointer data);
void on_fullscreen_clicked(FosforButton *button, gpointer data);
gboolean on_fixed_configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer data);
void on_fixed_size_allocate(GtkWidget *widget,  GtkAllocation *allocation, gpointer data);
gboolean on_fixed_configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer data);
gboolean on_tracker_value_changed(GtkWidget * widget, int percent, void *data);

gboolean set_play(void *data);
gboolean set_pause(void *data);
gboolean set_stop(void *data);
gboolean set_ff(void *data);
gboolean set_rew(void *data);

gboolean clear_playlist_and_play(gpointer data);
gboolean set_progress_text(void *data);
gboolean set_show_controls(void *data);

void update_subtitles(GList *list);
void update_languages(GList *list);

gboolean make_mouse_visible(gpointer data);
